package com.csht.service;

import java.util.List;

import com.csht.command.GetCompanyCommand;
import com.csht.command.ListCompanyCommand;
import com.csht.command.CompanyBatchCommand;
import com.csht.command.CompanyCommand;
import com.csht.command.CompanyQueryCommand;
import com.csht.vo.CompanyVo;

import com.winit.common.query.Page;
import com.winit.common.spi.SPIException;

/**
 * 
 * 运输企业服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * houzw    1.0  2018年01月05日 Created
 *
 * </pre>
 * @since 1.
 */
public interface CompanyService {

    /**
     * 单个新增
     * 
     * @param command
     * @return
     */
    Long createCompany(CompanyCommand command) throws SPIException;

    /**
     * 批量新增
     * 
     * @param command
     * @return
     */
    void createBatchCompany(CompanyBatchCommand command) throws SPIException;

    /**
     * 单个删除
     * 
     * @param command
     * @return
     */
    void deleteCompany(GetCompanyCommand command) throws SPIException;

    /**
     * 批量删除
     * 
     * @param command
     * @return
     */
    void deleteBatchCompany(ListCompanyCommand command) throws SPIException;

    /**
     * 单个更新
     * 
     * @param command
     * @return
     */
    void updateCompany(CompanyCommand command) throws SPIException;

    /**
     * 批量更新
     * 
     * @param command
     * @return
     */
    void updateBatchCompany(CompanyBatchCommand command) throws SPIException;

    /**
     * 单个查询
     * 
     * @param command
     * @return
     */
    CompanyVo getCompany(GetCompanyCommand command) throws SPIException;

    /**
     * 分页查询
     * 
     * @param command
     * @return
     */
    Page<CompanyVo> findCompanyPage(CompanyQueryCommand command) throws SPIException;

    /**
     * 查询所有
     * 
     * @param command
     * @return
     */
    List<CompanyVo> queryCompanyList(CompanyQueryCommand command) throws SPIException;
}
